/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Factory;

import Factory.DAO.LogDAO;
import Factory.DAO.LogDefDAO;
import Factory.DAO.InventoryDAO;
import Factory.DAO.CategoryDAO;
import Factory.DAO.MovieDAO;
import Factory.DAO.CartDAO;
import Factory.DAO.TransactionDAO;
import Factory.DAO.UserDAO;
import Factory.DAO.UserDefDAO;

/**
 *
 * @author Patrick
 */
public abstract class DAOFactory {
    public static final int MYSQL = 1;
    public static final int ORACLE = 2;
    
    public static DAOFactory getInstance(int dataSource){
        switch (dataSource){
            case MYSQL: return new MySQLDAOFactory();
        }
        return null;
    }
    
    public abstract UserDAO createUserDAO();
    public abstract UserDefDAO createUserDefDAO();
    public abstract MovieDAO createMovieDAO();
    public abstract CategoryDAO createCategoryDAO();
    public abstract InventoryDAO createInventoryDAO();
    public abstract CartDAO createCartDAO();
    public abstract TransactionDAO createTransactionDAO();
    public abstract LogDAO createLogDAO();
    public abstract LogDefDAO createLogDefDAO();
}
